"""空字典：
用{}定义： 字典变量名 = {}
类实例化方式定义： 字典变量名 = dict()
非空字典【常见】：
字典变量名 = {键1:值1,键2:值2,...}"""
# 定义空字典
info = {}
info1 = dict()
print(type(info), type(info1))
print(info)
# 非空字典
info2 = {"name": "张三", "age": 22, "height": 1.88}
print(info2)
print(type(info2))
print("------字典的使用-------")
# 语法格式： 字典名[键]=值
# 定义非空字典
info3 = {"name": "李四"}
# 将张三修改为李四
# 查看原有字典
print(info3)  # {'name': '李四'}
# 增加年龄为22岁
info3["age"] = 22
# 查看原有字典
print(info3)  # {'name': '李四', 'age': 22}
print("------字典删除值-------")
# 字典名.pop(键)
# 定义字典
info4 = {'name': '李四', 'age': 22}
# 删除年龄22
info4.pop("age")
# 查看原来字典
print(info4)
print("------字典删取值-------")
# 格式1： 变量 = 字典名[键]
# 格式2： 变量 = 字典名.get(键)
# 定义非空字典
info5 = {
    "name": "tom",
    "age": 18,
    "gender": "男",
    "hobby": {"read": "小说", "sport": ["篮球", "足球"]}
}
# 查询年龄
# a1 = info["age"]
# print(a1)
print(info5["age"])
# a2 = info.get("age")
# print(a2)
print(info5.get("age"))
# 查询键aa的值
# print(info["aa"]) # 代码报错：KeyError: 'aa' 键aa不存在
print(info5.get("aa"))  # None 表示aa键不存在
# 思考：如何获取值："足球"
# a1 = info["hobby"]
# print(a1) # {'read': '小说', 'sport': ['篮球', '足球']}
# print(a1["sport"]) # ['篮球', '足球']
# print(a1["sport"][1])
# 组合:从外部一层一层获取递进
print(info5["hobby"]["sport"][1])
print(info5.get("hobby").get("sport")[1])
print("------字典合并/新增-------")
# 字典2.update(字典1)
# 定义字典1
dict1 = {"name": "张三", "age": 18}
# 定义字典2
dict2 = {"height": 1.88}
# 将字典2合并到字典1
dict1.update(dict2)
print(dict1)
print("------字典的遍历-------")
"""遍历字典键：
语法格式： for 临时变量 in 字典名.keys():
说明：取出字典中的所有键，容器后面可以不写 .keys()
遍历字典值：
语法格式： for 临时变量 in 字典名.values():
说明：取出字典中的所有值
遍历键和值：
语法格式： for 键变量,值变量 in 字典名.items():
说明：取出字典中的所有键和值"""
# 定义非空字典
info6 = {
    "name": "tom",
    "age": 18,
    "gender": "男"
}
# 遍历获取字典中所有键
for i in info6.keys():
    print(f"字典的键是：{i}")
# 遍历获取字典中所有值
for i in info6.values():
    print(f"字典的值是：{i}")
# 遍历获取字典的键和值
for k, v in info6.items():
    print(f"{k} = {v}")
# 1.定义空集合
info6 = set()
print(info6)
# 2.集合中添加元素："a"
info6.add("a")
info6.add("b")
print(info6)
# 定义非空字符串
var = "abcdeabdcdf"
# 3.打印非重复的元素
print(set(var))  # 转换为集合去重 # {'c', 'f', 'e', 'a', 'b', 'd'}

